In client server programming, there is a distinct boundary between client side programming and server side programming. For example, use JavaScript to do client side programming; use PHP to do server side programming; use form submission or AJAX to do interactions between the client side programming and server side programming. Software engineers doing client server programming have to plan and program for client server interactions. Client server programming is a complex task and it is not an easy job to do it right.
There are efforts to make JavaScript to work for both client side programming and server side programming so that a programmer does not need to learn two languages for client side programming and server side programming. For example Node.js (http://nodejs.org/) uses Google® (Google is a trademark of Google Corporation) V8 JavaScript engine to run JavaScript for server side programming. Thus a programmer can use JavaScript for both client side and server side programming.
VBScript (Visual Basic, VB and VBScript are trademarks of Microsoft Corporation) is for web client programming. VB.Net can be used for server side programming. The two Visual Basic languages share lots of syntax similarity.
Script# (http://scriptsharp.com/) converts C# code to JavaScript. Thus C# can be used for both client side programming and server side programming.
Remote procedure calls (Birrell, A. D.; Nelson, B. J., 1984, “Implementing remote procedure calls”. ACM Transactions on Computer Systems 2: 39.) and web services (Web Services Architecture, W3C Working Group Note 11 Feb. 2004) use stub-functions to make server function calls appear in client code. Thus, programmers do not need to explicitly code server connections.
Socket.io (http://socket.io/) for Node.js (http://nodejs.org/) enables real-time bidirectional event-based communication; it also uses an approach similar to Remote Procedure Calls (RPC) to achieve network communications. It is a kind of asynchronous RPC mechanism.
Microsoft® ASP.NET automates some aspects of client server programming. Its compiler generates server side code to match client side controls. It uses Auto-post-back so that in handling some events form-submission is automatically done. It uses View State to automatically upload and download control properties. From a programmer's point of view it is as if a same control works at both client side and server side. Client server programming is thus made more intuitive.
The above mentioned technologies make client server programming more intuitive and convenient, but the boundary between client side programming and server side programming still exists.